package com.cnblogs.leizia.crm.workbench.service;

import com.cnblogs.leizia.crm.exception.ClueException;
import com.cnblogs.leizia.crm.settings.domain.User;
import com.cnblogs.leizia.crm.workbench.domain.Activity;
import com.cnblogs.leizia.crm.workbench.domain.Clue;

import java.util.List;
import java.util.Map;

/**
 * @author leizi
 * @create 2021-03-02 22:50
 */
public interface ClueService {

    /**
     * 获取创建线索所有者列表
     *
     * @return
     * @throws ClueException
     */
    List<User> getUserList() throws ClueException;


    /**
     * 保存线索
     *
     * @param clue 线索实体类
     * @return
     */
    boolean saveClue(Clue clue);

    /**
     * 分页获取线索列表
     *
     * @param map
     * @return
     */
    List<Clue> getPageList(Map<String, Object> map);

    /**
     * 跳转线索详情页
     *
     * @param clueId
     * @return
     */
    Clue dispatcherDetail(String clueId);

    /**
     * 获取线索关联的市场活动列表
     *
     * @param clueId
     * @return
     */
    List<Activity> getActivityList(String clueId);

    /**
     * 解除关联
     *
     * @param relevanceId
     * @return
     */
    boolean clueActivityUnRelevance(String relevanceId);

    /**
     * 根据线索id查询关联的市场活动
     *
     * @param clueId
     * @return
     */
    List<Activity> getActivityListById(String clueId);
}
